using System;
using Volo.Abp.Application.Dtos;

namespace ThridGroup.ERP.DTO.WarehouseManagement
{
    /// <summary>
    /// 库存现有量DTO
    /// </summary>
    public class InventoryDto : EntityDto<int>
    {
        /// <summary>
        /// 产品物料编号
        /// </summary>
        public string ProductMaterielCode { get; set; }

        /// <summary>
        /// 产品物料名称
        /// </summary>
        public string ProductMaterielName { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        public string Specifications { get; set; }

        /// <summary>
        /// 在库数量
        /// </summary>
        public decimal QuantityInStock { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public string Unit { get; set; }

        /// <summary>
        /// 入库批次号
        /// </summary>
        public string InboundBatchNumber { get; set; }

        /// <summary>
        /// 仓库名称
        /// </summary>
        public string WarehouseName { get; set; }

        /// <summary>
        /// 库区
        /// </summary>
        public string WarehouseArea { get; set; }

        /// <summary>
        /// 库位
        /// </summary>
        public string WarehouseLocation { get; set; }

        /// <summary>
        /// 供应商编号
        /// </summary>
        public string SupplierCode { get; set; }

        /// <summary>
        /// 供应商名称
        /// </summary>
        public string SupplierName { get; set; }

        /// <summary>
        /// 供应商简称
        /// </summary>
        public string SupplierAbbreviation { get; set; }

        /// <summary>
        /// 生产工单
        /// </summary>
        public string ProductionWorkOrder { get; set; }

        /// <summary>
        /// 入库日期
        /// </summary>
        public DateTime? InboundDate { get; set; }

        /// <summary>
        /// 库存有效性
        /// </summary>
        public bool InventoryValidity { get; set; }

        /// <summary>
        /// 物料分类ID
        /// </summary>
        public int MaterialTypeId { get; set; }

        /// <summary>
        /// 物料分类名称
        /// </summary>
        public string MaterialTypeName { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 是否删除
        /// </summary>
        public bool IsDeleted { get; set; }
    }

    /// <summary>
    /// 库存查询DTO
    /// </summary>
    public class QueryInventoryDto
    {
        /// <summary>
        /// 产品物料编号
        /// </summary>
        public string ProductMaterielCode { get; set; }

        /// <summary>
        /// 产品物料名称
        /// </summary>
        public string ProductMaterielName { get; set; }

        /// <summary>
        /// 仓库名称
        /// </summary>
        public string WarehouseName { get; set; }

        /// <summary>
        /// 供应商名称
        /// </summary>
        public string SupplierName { get; set; }

        /// <summary>
        /// 物料分类ID
        /// </summary>
        public int? MaterialTypeId { get; set; }

        /// <summary>
        /// 库存有效性
        /// </summary>
        public bool? InventoryValidity { get; set; }

        /// <summary>
        /// 页码
        /// </summary>
        public int Page { get; set; } = 1;

        /// <summary>
        /// 每页数量
        /// </summary>
        public int Limit { get; set; } = 10;
    }
} 